package com.hanyizhu.demostore.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**自定义一个拦截器
 * @author lenovo*/
public class LoginInterceptor implements HandlerInterceptor {

    /**
     * 检测全局session对象中是否有UID数据,如果有则放行,如果有则放行,如果没有重定向登陆页面
     * @param request 请求对象
     * @param response 响应对象
     * @param handler 处理器(url+controller:映射)
     * @return 如果返回值为ture表示当前的请求,如果返回值为flase表示拦截当前的请求
     * @throws Exception 抛出异常
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //httpSerletRequest对象来获取session对象
        Object obj = request.getSession().getAttribute("uid");
        if (obj == null){//说明用户没有登陆过系统,则重定向登陆页面
            response.sendRedirect("/web/login.html");
            //结束后续的调用
            return false;
        }
        //请求放行
        return true;
    }
}
